
#include <stdio.h>
#include <assert.h>
//void* my_memcpy(const void* str1, void* str2,int k)
//{
//	assert(str1 && str2);
//	void* tmp = str2;
//	while (k--)
//	{
//		*(char*)str2 = *(char*)str1;
//		str1 = (char*)str1 + 1;
//		str2 = (char*)str2 + 1;
//	}
//	return tmp;
//}
//int main()
//{
//	int arr1[] = { 1,2,3,4,5,6,7,8,9,10 };
//	int arr2[20] = { 0 };
//	my_memcpy(arr1, arr2,40);
//	//int sz = sizeof(arr2) / sizeof(arr2[0]);
//	int i = 0;
//	for (i = 0; i < 10; i++)
//	{
//		printf("%d ", arr2[i]);
//	}
//	
//}

void* my_memove(void* str1, void* str2, int k)
{
	assert(str1 && str2);
	void* tmp = str2;
		if (str2 < str1)
		{
			while (k--)
			{
				*(char*)str2 = *(char*)str1;
				str1 = (char*)str1 + 1;
				str2 = (char*)str2 + 1;
			}
		}
		else
		{
			while (k--)
			{
				*((char*)str2 + k) = *((char*)str1 + k);
			}
		}
		return tmp;
}
int main()
{
	int arr1[20] = { 1,2,3,4,5,6,7,8,9,10 };
	int arr2[20] = { 0 };
	my_memove(arr1, arr1+2, 20);
	//int sz = sizeof(arr2) / sizeof(arr2[0]);
	int i = 0;
	for (i = 0; i < 20; i++)
	{
		printf("%d ", arr1[i]);
	}

}